[INFO] fetching crate log-watcher 0.2.1...
[INFO] testing log-watcher-0.2.1 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] extracting crate log-watcher 0.2.1 into /workspace/builds/worker-3-tc1/source
[INFO] removed /workspace/builds/worker-3-tc1/source/.cargo/config.toml
[INFO] started tweaking crates.io crate log-watcher 0.2.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate log-watcher 0.2.1
[INFO] tweaked toml for crates.io crate log-watcher 0.2.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate log-watcher 0.2.1 on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate log-watcher 0.2.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded winrt-notification v0.5.1
[INFO] [stderr]   Downloaded strum v0.22.0
[INFO] [stderr]   Downloaded notify-rust v4.11.7
[INFO] [stderr]   Downloaded strum_macros v0.22.0
[INFO] [stderr]   Downloaded zvariant_derive v5.7.0
[INFO] [stderr]   Downloaded windows-version v0.1.5
[INFO] [stderr]   Downloaded mac-notification-sys v0.6.6
[INFO] [stderr]   Downloaded async-process v2.4.0
[INFO] [stderr]   Downloaded tauri-winrt-notification v0.7.2
[INFO] [stderr]   Downloaded clap_complete v4.5.61
[INFO] [stderr]   Downloaded async-io v2.5.0
[INFO] [stderr]   Downloaded polling v3.10.0
[INFO] [stderr]   Downloaded zvariant v5.7.0
[INFO] [stderr]   Downloaded clap v4.5.47
[INFO] [stderr]   Downloaded block2 v0.6.1
[INFO] [stderr]   Downloaded time v0.3.43
[INFO] [stderr]   Downloaded zbus_macros v5.11.0
[INFO] [stderr]   Downloaded clap_builder v4.5.47
[INFO] [stderr]   Downloaded zbus v5.11.0
[INFO] [stderr]   Downloaded async-signal v0.2.12
[INFO] [stderr]   Downloaded objc2 v0.6.2
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.24.0
[INFO] [stderr]   Downloaded windows_i686_msvc v0.24.0
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.24.0
[INFO] [stderr]   Downloaded windows_i686_gnu v0.24.0
[INFO] [stderr]   Downloaded windows v0.24.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a77398697d901edb327b364d1d464aed0cc971a08c9989a97df9db7228770622
[INFO] running `Command { std: "docker" "start" "-a" "a77398697d901edb327b364d1d464aed0cc971a08c9989a97df9db7228770622", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a77398697d901edb327b364d1d464aed0cc971a08c9989a97df9db7228770622", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a77398697d901edb327b364d1d464aed0cc971a08c9989a97df9db7228770622", kill_on_drop: false }`
[INFO] [stdout] a77398697d901edb327b364d1d464aed0cc971a08c9989a97df9db7228770622
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 91258a4bcd59ab57fb7a1cf83d19ed312e61d0bf4d7adf58321d8f2da554af2e
[INFO] running `Command { std: "docker" "start" "-a" "91258a4bcd59ab57fb7a1cf83d19ed312e61d0bf4d7adf58321d8f2da554af2e", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling cfg-if v1.0.3
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling endi v1.1.0
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling clap_builder v4.5.47
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling ordered-stream v0.2.0
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling async-executor v1.13.3
[INFO] [stderr]    Compiling indexmap v2.11.1
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling async-lock v3.4.1
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling async-broadcast v0.7.2
[INFO] [stderr]    Compiling nu-ansi-term v0.50.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling blocking v1.6.2
[INFO] [stderr]    Compiling notify-types v2.0.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling inotify v0.11.0
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]    Compiling derive_more-impl v2.1.0
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling derive_more v2.1.0
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling clap v4.5.47
[INFO] [stderr]    Compiling clap_complete v4.5.61
[INFO] [stderr]    Compiling polling v3.10.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling async-io v2.5.0
[INFO] [stderr]    Compiling async-signal v0.2.12
[INFO] [stderr]    Compiling async-process v2.4.0
[INFO] [stderr]    Compiling zvariant_utils v3.2.1
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling zvariant_derive v5.7.0
[INFO] [stderr]    Compiling zvariant v5.7.0
[INFO] [stderr]    Compiling zbus_names v4.2.0
[INFO] [stderr]    Compiling zbus_macros v5.11.0
[INFO] [stderr]    Compiling zbus v5.11.0
[INFO] [stderr]    Compiling notify-rust v4.11.7
[INFO] [stderr]    Compiling log-watcher v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 03s
[INFO] running `Command { std: "docker" "inspect" "91258a4bcd59ab57fb7a1cf83d19ed312e61d0bf4d7adf58321d8f2da554af2e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "91258a4bcd59ab57fb7a1cf83d19ed312e61d0bf4d7adf58321d8f2da554af2e", kill_on_drop: false }`
[INFO] [stdout] 91258a4bcd59ab57fb7a1cf83d19ed312e61d0bf4d7adf58321d8f2da554af2e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ded6df1e95a5557b6a84fb2d91ebcf756094ce8ce85d1032a4b4e37f9878d471
[INFO] running `Command { std: "docker" "start" "-a" "ded6df1e95a5557b6a84fb2d91ebcf756094ce8ce85d1032a4b4e37f9878d471", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling async-executor v1.13.3
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling doc-comment v0.3.3
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling assert_cmd v2.0.17
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling is-terminal v0.4.16
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling async-lock v3.4.1
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling async-broadcast v0.7.2
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling blocking v1.6.2
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling bstr v1.12.0
[INFO] [stderr]    Compiling zvariant_utils v3.2.1
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling predicates v3.1.3
[INFO] [stderr]    Compiling zvariant_derive v5.7.0
[INFO] [stderr]    Compiling polling v3.10.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.22.0
[INFO] [stderr]    Compiling async-io v2.5.0
[INFO] [stderr]    Compiling zvariant v5.7.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling async-signal v0.2.12
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling async-process v2.4.0
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling tokio-test v0.4.4
[INFO] [stderr]    Compiling zbus_names v4.2.0
[INFO] [stderr]    Compiling zbus_macros v5.11.0
[INFO] [stderr]    Compiling zbus v5.11.0
[INFO] [stderr]    Compiling notify-rust v4.11.7
[INFO] [stderr]    Compiling log-watcher v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 38.02s
[INFO] running `Command { std: "docker" "inspect" "ded6df1e95a5557b6a84fb2d91ebcf756094ce8ce85d1032a4b4e37f9878d471", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ded6df1e95a5557b6a84fb2d91ebcf756094ce8ce85d1032a4b4e37f9878d471", kill_on_drop: false }`
[INFO] [stdout] ded6df1e95a5557b6a84fb2d91ebcf756094ce8ce85d1032a4b4e37f9878d471
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9629205ae4b34cf50d92daedf7297bcc0661805d688d20d6dfb395ca843db1e5
[INFO] running `Command { std: "docker" "start" "-a" "9629205ae4b34cf50d92daedf7297bcc0661805d688d20d6dfb395ca843db1e5", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/log_watcher-a861e7dd9cad36ad)
[INFO] [stdout] 
[INFO] [stdout] running 121 tests
[INFO] [stdout] _logwatcher() {
[INFO] [stdout]     local i cur prev opts cmd
[INFO] [stdout]     COMPREPLY=()
[INFO] [stdout]     if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
[INFO] [stdout]         cur="$2"
[INFO] [stdout]     else
[INFO] [stdout]         cur="${COMP_WORDS[COMP_CWORD]}"
[INFO] [stdout]     fi
[INFO] [stdout]     prev="$3"
[INFO] [stdout]     cmd=""
[INFO] [stdout]     opts=""
[INFO] [stdout] 
[INFO] [stdout]     for i in "${COMP_WORDS[@]:0:COMP_CWORD}"
[INFO] [stdout]     do
[INFO] [stdout]         case "${cmd},${i}" in
[INFO] [stdout]             ",$1")
[INFO] [stdout]                 cmd="logwatcher"
[INFO] [stderr] Info: No matching lines found
[INFO] [stdout]                 ;;
[INFO] [stderr] Warning: File rotation detected for test.log
[INFO] [stdout]             *)
[INFO] [stderr] Info: Reopened file: test.log
[INFO] [stdout]                 ;;
[INFO] [stderr] Info: Shutdown summary:
[INFO] [stdout]         esac
[INFO] [stderr] Info: Watching 1 file(s)
[INFO] [stdout]     done
[INFO] [stderr] Info: Patterns: ERROR
[INFO] [stdout] 
[INFO] [stderr] Info: Desktop notifications enabled
[INFO] [stdout]     case "${cmd}" in
[INFO] [stdout]         logwatcher)
[INFO] [stdout]             opts="-f -p -r -i -c -n -d -q -e -h -V --file --completions --pattern --regex --case-insensitive --color-map --notify --notify-patterns --notify-throttle --dry-run --quiet --exclude --no-color --prefix-file --poll-interval --buffer-size --help --version"
[INFO] [stdout]             if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
[INFO] [stdout]                 COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
[INFO] [stdout]                 return 0
[INFO] [stdout]             fi
[INFO] [stdout]             case "${prev}" in
[INFO] [stdout]                 --file)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 -f)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 --completions)
[INFO] [stdout]                     COMPREPLY=($(compgen -W "bash elvish fish powershell zsh" -- "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 --pattern)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 -p)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 --color-map)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 -c)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 --notify-patterns)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 --notify-throttle)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 --exclude)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 -e)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 --prefix-file)
[INFO] [stdout]                     COMPREPLY=($(compgen -W "true false" -- "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 --poll-interval)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 --buffer-size)
[INFO] [stdout]                     COMPREPLY=($(compgen -f "${cur}"))
[INFO] [stdout]                     return 0
[INFO] [stdout]                     ;;
[INFO] [stdout]                 *)
[INFO] [stdout]                     COMPREPLY=()
[INFO] [stdout]                     ;;
[INFO] [stdout]             esac
[INFO] [stdout]             COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
[INFO] [stdout]             return 0
[INFO] [stdout]             ;;
[INFO] [stdout]     esac
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then
[INFO] [stdout]     complete -F _logwatcher -o nosort -o bashdefault -o default logwatcher
[INFO] [stdout] else
[INFO] [stdout]     complete -F _logwatcher -o bashdefault -o default logwatcher
[INFO] [stdout] fi
[INFO] [stdout] test config::tests::test_all_color_parsing ... ok
[INFO] [stdout] test config::tests::test_get_color_for_pattern ... ok
[INFO] [stdout] test config::tests::test_should_exclude_literal ... ok
[INFO] [stdout] test config::tests::test_should_exclude_empty ... ok
[INFO] [stdout] test highlighter::tests::test_print_dry_run_summary_empty ... ok
[INFO] [stdout] test cli::tests::test_generate_completions ... ok
[INFO] [stdout] test cli::tests::test_exclude_patterns ... ok
[INFO] [stdout] test config::tests::test_should_exclude_case_insensitive ... ok
[INFO] [stdout] Custom message
[INFO] [stdout] Plain message
[INFO] [stdout] test highlighter::tests::test_print_colored_with_custom_color ... ok
[INFO] [stdout] test highlighter::tests::test_print_plain ... ok
[INFO] [stdout]   Files watched: 2
[INFO] [stdout]   Lines processed: 100
[INFO] [stdout]   Lines excluded: 10
[INFO] [stdout]   Matches found: 5
[INFO] [stdout]   Notifications sent: 3
[INFO] [stdout] test highlighter::tests::test_print_file_rotation ... ok
[INFO] [stdout] test highlighter::tests::test_print_file_reopened ... ok
[INFO] [stdout] test highlighter::tests::test_print_shutdown_summary ... ok
[INFO] [stdout] test highlighter::tests::test_print_startup_info ... ok
[INFO] [stdout] test highlighter::tests::test_quiet_mode_skip_non_matching ... ok
[INFO] [stdout] test matcher::tests::test_case_insensitive_matching ... ok
[INFO] [stdout] test matcher::tests::test_case_insensitive_get_all_matches_coverage_line_122 ... ok
[INFO] [stdout] ERROR: Something went wrong
[INFO] [stdout] Normal line
[INFO] [stdout] test matcher::tests::test_has_match_coverage_line_112 ... ok
[INFO] [stdout] test matcher::tests::test_literal_matching ... ok
[INFO] [stdout] test highlighter::tests::test_print_line_with_match ... ok
[INFO] [stdout] test highlighter::tests::test_print_line_without_match ... ok
[INFO] [stdout] test matcher::tests::test_multiple_matches ... ok
[INFO] [stdout] [DRY-RUN] ERROR: Something went wrong
[INFO] [stderr] Error: Error watching test.log: Permission denied
[INFO] [stdout] test matcher::tests::test_regex_get_all_matches_coverage_lines_139_141 ... ok
[INFO] [stdout] test notifier::tests::test_get_notification_count ... ok
[INFO] [stdout] test matcher::tests::test_get_all_matches_coverage_lines_122_129_139_141 ... ok
[INFO] [stdout] test notifier::tests::test_notification_disabled ... ok
[INFO] [stdout] test highlighter::tests::test_dry_run_prefix ... ok
[INFO] [stdout] test cli::tests::test_color_mappings_invalid_format ... ok
[INFO] [stderr] Info: Dry-run summary:
[INFO] [stdout] test highlighter::tests::test_print_file_error ... ok
[INFO] [stderr] Info: Dry-run complete. No notifications sent.
[INFO] [stdout] test notifier::tests::test_notification_with_file_info ... ok
[INFO] [stdout] test notifier::tests::test_test_notification_method_coverage_lines_136_138 ... ok
[INFO] [stdout] test notifier::tests::test_throttle_window_reset_coverage_lines_79_80 ... ok
[INFO] [stdout] test config::tests::test_parse_color_unknown_coverage_line_100 ... ok
[INFO] [stdout]   ERROR: 5 matches
[INFO] [stdout]   WARN: 3 matches
[INFO] [stdout] test config::tests::test_should_exclude_regex ... ok
[INFO] [stdout] test highlighter::tests::test_print_dry_run_summary_with_matches ... ok
[INFO] [stdout] test utils::tests::test_format_file_size ... ok
[INFO] [stdout] test utils::tests::test_format_file_size_coverage_line_68 ... ok
[INFO] [stdout] test highlighter::tests::test_color_choice_never ... ok
[INFO] [stdout] test utils::tests::test_get_file_size_nonexistent ... ok
[INFO] [stdout] test utils::tests::test_get_filename ... ok
[INFO] [stdout] test utils::tests::test_get_filename_edge_cases ... ok
[INFO] [stdout] test cli::tests::test_exclude_patterns_empty ... ok
[INFO] [stdout] test utils::tests::test_get_file_size_coverage_line_32 ... ok
[INFO] [stdout] test utils::tests::test_is_file_rotated ... ok
[INFO] [stdout] test utils::tests::test_is_symlink ... ok
[INFO] [stdout] test utils::tests::test_get_file_size ... ok
[INFO] [stdout] test notifier::tests::test_line_truncation ... ok
[INFO] [stdout] test utils::tests::test_read_file_from_end_with_nonexistent_file ... ok
[INFO] [stdout] test notifier::tests::test_notification_throttling ... ok
[INFO] [stdout] test utils::tests::test_is_file_rotated_coverage_line_38 ... ok
[INFO] [stdout] test utils::tests::test_resolve_symlink ... ok
[INFO] [stdout] test utils::tests::test_read_file_from_end_coverage_line_11 ... ok
[INFO] [stdout] test utils::tests::test_resolve_symlink_coverage_line_112 ... ok
[INFO] [stdout] test utils::tests::test_read_file_from_end_with_empty_lines ... ok
[INFO] [stdout] test utils::tests::test_validate_files_with_mixed_validity ... ok
[INFO] [stdout] test notifier::tests::test_throttle_window_reset_logic_coverage_lines_79_80 ... ok
[INFO] [stdout] test watcher::tests::test_channel_send_error_comprehensive ... ok
[INFO] [stderr] Info: Watching 1 file(s)
[INFO] [stdout] [DRY-RUN] ERROR: Test error
[INFO] [stderr] Info: Dry-run summary:Info: 
[INFO] [stdout]   ERROR: 1 matches
[INFO] [stderr] Patterns: ERROR, WARN
[INFO] [stdout] [DRY-RUN] ERROR: Test error
[INFO] [stderr] Info: Dry-run mode: reading existing content only
[INFO] [stdout] [DRY-RUN] WARN: Test warning
[INFO] [stderr] Info: Dry-run complete. No notifications sent.
[INFO] [stderr] Info: Dry-run summary:
[INFO] [stdout]   WARN: 1 matches
[INFO] [stderr] Info: Dry-run complete. No notifications sent.
[INFO] [stdout]   ERROR: 1 matches
[INFO] [stderr] Info: Shutdown summary:
[INFO] [stdout]   Files watched: 1
[INFO] [stdout]   Lines processed: 2
[INFO] [stdout]   Matches found: 2
[INFO] [stderr] Warning: File rotation detected for /tmp/.tmpKi7SXt
[INFO] [stdout]   Notifications sent: 0
[INFO] [stdout] ERROR: New error occurred
[INFO] [stdout] [DRY-RUN] This is an ERROR message
[INFO] [stderr] Info: Watching 1 file(s)
[INFO] [stdout] [DRY-RUN] Another ERROR message
[INFO] [stderr] Info: Patterns: ERROR
[INFO] [stdout]   ERROR: 2 matches
[INFO] [stderr] Info: Dry-run mode: reading existing content only
[INFO] [stdout]   Files watched: 1
[INFO] [stderr] Info: Dry-run summary:
[INFO] [stdout]   Lines processed: 3
[INFO] [stderr] Info: Dry-run complete. No notifications sent.
[INFO] [stdout]   Matches found: 2
[INFO] [stderr] Info: Shutdown summary:
[INFO] [stdout]   Notifications sent: 0
[INFO] [stdout]   ERROR: 2 matches
[INFO] [stderr] Info: Dry-run summary:
[INFO] [stderr] Info: Dry-run complete. No notifications sent.
[INFO] [stdout] test utils::tests::test_validate_files ... ok
[INFO] [stderr] Info: Watching 1 file(s)
[INFO] [stdout] test utils::tests::test_validate_files_all_invalid ... ok
[INFO] [stderr] Info: Patterns: ERROR, WARN
[INFO] [stdout] test watcher::tests::test_channel_send_error_coverage_line_177 ... ok
[INFO] [stderr] Info: Dry-run mode: reading existing content only
[INFO] [stdout] test watcher::tests::test_dry_run_summary_coverage ... ok
[INFO] [stderr] Warning: File rotation detected for /tmp/.tmpuxNEC4
[INFO] [stdout] test utils::tests::test_is_file_readable ... ok
[INFO] [stderr] Info: Dry-run summary:
[INFO] [stdout] test watcher::tests::test_dry_run_summary_coverage_line_82 ... ok
[INFO] [stderr] Info: Dry-run complete. No notifications sent.
[INFO] [stdout] test watcher::tests::test_dry_run_mode ... ok
[INFO] [stderr] Info: Shutdown summary:
[INFO] [stdout] test highlighter::tests::test_print_dry_run_summary_coverage_line_116 ... ok
[INFO] [stderr] Error: Error watching /tmp/.tmpWfsvig: Permission denied
[INFO] [stdout] test notifier::tests::test_should_notify_for_pattern_coverage_line_39 ... ok
[INFO] [stderr] Warning: File rotation detected for /tmp/.tmpl1wCPw
[INFO] [stdout] test notifier::tests::test_should_notify_for_pattern_early_return_coverage_line_39 ... ok
[INFO] [stderr] Warning: File rotation detected for /tmp/.tmphTls4G
[INFO] [stdout] test utils::tests::test_format_file_size_edge_cases ... ok
[INFO] [stderr] Warning: File rotation detected for /tmp/.tmprOG091
[INFO] [stdout] test notifier::tests::test_windows_notification_coverage_lines_136_138 ... ok
[INFO] [stdout] test utils::tests::test_read_file_from_end ... ok
[INFO] [stdout] test watcher::tests::test_channel_send_error_handling ... ok
[INFO] [stdout] test matcher::tests::test_regex_matching ... ok
[INFO] [stdout] ERROR: Test error
[INFO] [stdout] [DRY-RUN] ERROR: Something went wrong
[INFO] [stdout] [DRY-RUN] WARN: This is a warning
[INFO] [stdout] [DRY-RUN] ERROR: Another error
[INFO] [stdout]   ERROR: 2 matches
[INFO] [stdout]   WARN: 1 matches
[INFO] [stdout]   Files watched: 1
[INFO] [stdout]   Lines processed: 4
[INFO] [stdout]   Matches found: 3
[INFO] [stdout]   Notifications sent: 0
[INFO] [stdout] ERROR: Test error
[INFO] [stdout] ERROR: New error occurred
[INFO] [stdout] test watcher::tests::test_error_handling_coverage_lines_142_189 ... ok
[INFO] [stdout] test watcher::tests::test_dry_run_summary_with_multiple_patterns ... ok
[INFO] [stdout] test watcher::tests::test_file_event_channel_error ... ok
[INFO] [stdout] test watcher::tests::test_file_event_processing_file_error ... ok
[INFO] [stdout] test watcher::tests::test_files_watched_assignment ... ok
[INFO] [stdout] test watcher::tests::test_file_event_processing_new_line ... ok
[INFO] [stderr] Warning: File rotation detected for /non/existent/file.log
[INFO] [stdout] ERROR: New error occurred
[INFO] [stdout] test watcher::tests::test_file_name_unwrap_coverage ... ok
[INFO] [stdout] test watcher::tests::test_poll_file_changes_no_new_content ... ok
[INFO] [stdout] test watcher::tests::test_file_error_event_sending ... ok
[INFO] [stdout] test watcher::tests::test_poll_file_changes_error_handling ... ok
[INFO] [stdout] test watcher::tests::test_file_event_processing ... ok
[INFO] [stdout] test watcher::tests::test_dry_run_with_file_error ... ok
[INFO] [stdout] test watcher::tests::test_notification_success_coverage_line_283 ... ok
[INFO] [stderr] Info: Dry-run summary:
[INFO] [stdout] [DRY-RUN] ERROR: Test error
[INFO] [stderr] Info: Dry-run complete. No notifications sent.
[INFO] [stdout] [DRY-RUN] ERROR: Another error
[INFO] [stdout]   ERROR: 2 matches
[INFO] [stdout] test watcher::tests::test_poll_file_changes_with_rotation ... ok
[INFO] [stdout] test watcher::tests::test_pattern_counts_entry_coverage ... ok
[INFO] [stdout] ERROR: Test error
[INFO] [stdout] test watcher::tests::test_process_existing_file_with_empty_file ... ok
[INFO] [stdout] test watcher::tests::test_poll_file_changes_with_seek_coverage_line_216 ... ok
[INFO] [stdout] test watcher::tests::test_poll_file_changes_error_sending ... ok
[INFO] [stdout] test watcher::tests::test_process_line ... ok
[INFO] [stdout] test watcher::tests::test_poll_file_changes_with_seeking ... ok
[INFO] [stdout] test watcher::tests::test_poll_file_changes_seek_coverage ... ok
[INFO] [stdout] INFO: Normal operation
[INFO] [stdout] [DRY-RUN] ERROR: Test error
[INFO] [stdout]   ERROR: 1 matches
[INFO] [stdout]   Files watched: 1
[INFO] [stdout]   Lines processed: 1
[INFO] [stdout]   Matches found: 1
[INFO] [stdout]   Notifications sent: 0
[INFO] [stdout] test watcher::tests::test_poll_file_changes_with_file_error ... ok
[INFO] [stdout] test watcher::tests::test_process_line_without_notification ... ok
[INFO] [stdout] test watcher::tests::test_process_line_notification_coverage ... ok
[INFO] [stdout] test watcher::tests::test_process_existing_file_with_non_matching_content ... ok
[INFO] [stderr] Info: Watching 1 file(s)
[INFO] [stderr] Info: Patterns: ERROR
[INFO] [stderr] Info: Dry-run mode: reading existing content only
[INFO] [stderr] Info: Dry-run summary:
[INFO] [stderr] Info: Dry-run complete. No notifications sent.
[INFO] [stderr] Info: Shutdown summary:
[INFO] [stdout] test watcher::tests::test_run_method_coverage ... ok
[INFO] [stderr] Error: Error watching /non/existent/file.log: No path was found. about ["/non/existent/file.log"]
[INFO] [stderr] Info: Watching 1 file(s)
[INFO] [stderr] Info: Patterns: ERROR
[INFO] [stdout] test watcher::tests::test_process_line_with_notification ... ok
[INFO] [stdout] test watcher::tests::test_seek_operation_coverage_line_216 ... ok
[INFO] [stdout] test watcher::tests::test_start_file_watcher ... ok
[INFO] [stdout] [DRY-RUN] ERROR: Something went wrong
[INFO] [stderr] Info: Watching 1 file(s)
[INFO] [stdout] test watcher::tests::test_process_existing_file ... ok
[INFO] [stderr] Info: Patterns: ERROR
[INFO] [stdout] [DRY-RUN] ERROR: Test error
[INFO] [stderr] Info: Dry-run mode: reading existing content only
[INFO] [stdout]   ERROR: 1 matches
[INFO] [stderr] Info: Dry-run summary:
[INFO] [stdout]   Files watched: 1
[INFO] [stderr] Info: Dry-run complete. No notifications sent.
[INFO] [stdout]   Lines processed: 1
[INFO] [stderr] Info: Shutdown summary:
[INFO] [stdout]   Matches found: 1
[INFO] [stdout]   Notifications sent: 0
[INFO] [stdout] test watcher::tests::test_run_with_startup_info ... ok
[INFO] [stderr] Info: Watching 1 file(s)
[INFO] [stdout] test watcher::tests::test_startup_info_coverage ... ok
[INFO] [stderr] Info: Patterns: ERROR
[INFO] [stdout] [DRY-RUN] ERROR: Test error
[INFO] [stderr] Info: Dry-run mode: reading existing content only
[INFO] [stdout]   ERROR: 1 matches
[INFO] [stderr] Info: Watching 1 file(s)
[INFO] [stdout]   Files watched: 1
[INFO] [stderr] Info: Patterns: ERROR
[INFO] [stdout]   Lines processed: 1
[INFO] [stderr] Info: Dry-run mode: reading existing content only
[INFO] [stdout]   Matches found: 1
[INFO] [stderr] Info: Dry-run summary:
[INFO] [stdout]   Notifications sent: 0
[INFO] [stderr] Info: Dry-run complete. No notifications sent.
[INFO] [stdout] test watcher::tests::test_startup_info_coverage_line_47 ... ok
[INFO] [stderr] Info: Shutdown summary:
[INFO] [stdout] test watcher::tests::test_try_send_error_coverage ... ok
[INFO] [stdout] test watcher::tests::test_start_file_watcher_error_handling ... ok
[INFO] [stdout] test watcher::tests::test_start_file_watcher_error_path ... ok
[INFO] [stdout] test watcher::tests::test_poll_file_changes ... ok
[INFO] [stderr] Error: Error watching /non/existent/file.log: No such file or directory (os error 2)
[INFO] [stdout] test watcher::tests::test_run_dry_mode_with_file_error ... ok
[INFO] [stderr] Info: No matching lines found
[INFO] [stdout] test watcher::tests::test_run_tail_mode_with_watcher_error ... ok
[INFO] [stdout] test watcher::tests::test_run_tail_mode_with_file_error ... ok
[INFO] [stdout] test watcher::tests::test_run_tail_mode_execution ... ok
[INFO] [stdout] test watcher::tests::test_run_tail_mode_coverage ... ok
[INFO] [stdout] test watcher::tests::test_run_tail_mode ... ok
[INFO] [stderr] Info: Reopened file: /tmp/.tmpKi7SXt
[INFO] [stderr] Error: Error watching /tmp/.tmpKi7SXt: Test error
[INFO] [stdout] test watcher::tests::test_comprehensive_file_event_processing ... ok
[INFO] [stderr] Info: Reopened file: /tmp/.tmpuxNEC4
[INFO] [stderr] Error: Error watching /tmp/.tmpuxNEC4: Test error
[INFO] [stderr] Info: Reopened file: /tmp/.tmphTls4G
[INFO] [stderr] Info: Reopened file: /tmp/.tmprOG091
[INFO] [stdout] test watcher::tests::test_file_event_match_coverage_lines_111_119 ... ok
[INFO] [stderr] Info: Reopened file: /tmp/.tmpl1wCPw
[INFO] [stderr] Error: Error watching /tmp/.tmpl1wCPw: Test error
[INFO] [stdout] test watcher::tests::test_handle_file_rotation ... ok
[INFO] [stdout] test watcher::tests::test_file_event_processing_file_rotation ... ok
[INFO] [stdout] test watcher::tests::test_file_event_processing_comprehensive ... ok
[INFO] [stderr] Error: Error watching /non/existent/file.log: File not found after rotation
[INFO] [stdout] test watcher::tests::test_handle_file_rotation_file_not_found ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/logwatcher-dbb8ae3098b077c8)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 121 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.05s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test tests::test_config_error_handling_coverage_lines_19_20 ... ok
[INFO] [stdout] test tests::test_main_with_invalid_args ... ok
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-98c99a07396c3285)
[INFO] [stdout] test tests::test_logwatcher_error_handling_coverage_line_34 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test test_help_output ... ok
[INFO] [stdout] test test_no_files_error ... ok
[INFO] [stdout] test test_version_output ... ok
[INFO] [stdout] test test_notification_patterns ... ok
[INFO] [stdout] test test_poll_interval_configuration ... ok
[INFO] [stdout] test test_dry_run_with_existing_file ... ok
[INFO] [stdout] test test_invalid_regex ... ok
[INFO] [stdout] test test_buffer_size_configuration ... ok
[INFO] [stdout] test test_quiet_mode ... ok
[INFO] [stdout] test test_regex_matching ... ok
[INFO] [stdout] test test_color_mapping ... ok
[INFO] [stdout] test test_multiple_files ... ok
[INFO] [stdout] test test_case_insensitive_matching ... ok
[INFO] [stderr]    Doc-tests log_watcher
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9629205ae4b34cf50d92daedf7297bcc0661805d688d20d6dfb395ca843db1e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9629205ae4b34cf50d92daedf7297bcc0661805d688d20d6dfb395ca843db1e5", kill_on_drop: false }`
[INFO] [stdout] 9629205ae4b34cf50d92daedf7297bcc0661805d688d20d6dfb395ca843db1e5
